Zookeeper
Zookeeper
Zookeeper는 보통 분산 환경에서 Coordiator의 역할을 한다.
Zookeeper 활용
실제 사용되는 예시로는, HDFS의 HA 클러스터 상에서 automatic failover를 가능하게 하기위해 Apache Zookeepr가 서용된다.
- HDFS의 active / stanby namenode에는 ZookeeperFailoverController (ZKFC)라고 하는 namenode의 상태 모니터링을 하는 zookeepr 클라이언트 프로세스가 존재
- Namenode의 ZKFC는 Quorum으로 구성된 Zookeeper 클러스터에 주기적으로 heartbeat 신호를 보냄
- Active Namenode 장애 시, Stanby Namenode는 Zookeeper 클러스터를 통해 장애를 인지하고, 최신 상태를 반영받아 Active로 선출 됨
Zookeeper 일반
Zookeeper는 기본적으로 Tree 구조를 구성하는 znode에 데이터를 관리할 수 있다. (Lock 처리가 포함됨)
Leader election을 구현하려면 고려해야할 것이 많다.
- 네트워크가 연결 되었나 / 끊어졌나
- 일시적으로 끊어졌나
- 다시 연결 할건가
- ...
Leader election 전용 namespace를 가지는 znode를 생성하고 CreateMode.EPEHMERAL_SEQUENTIAL을 이용하면 leader election을 간단하게 구현할 수 있다.